# coding = utf-8
'''
pytest 执行逻辑层
    -根据用户对 conf.ini 的配置项进行不同的逻辑判断
'''
import os, pytest
from my_test.tools.tools import *
from configparser import ConfigParser


class Start:

    def __init__(self):
        self.conf = ConfigParser()
        self.conf.read(pro_path() + '/conf.ini', encoding='utf-8')

        self.CaseDataDir = self.conf.get('main', 'CaseDataDir')
        self.method = self.conf.get('main', 'method')
        self.repoterdir = self.conf.get('main', 'repoterdir')
        self.htmldir = self.conf.get('main', 'htmldir')
        self.CleanHistoryRepoter = self.conf.get('main', 'CleanHistoryRepoter')
        self.OpenRepoter = self.conf.get('main', 'OpenRepoter')

    @print_exception
    def verdict(self):
        try:
            if self.CleanHistoryRepoter.lower() == 'yes':
                if self.OpenRepoter.lower() == 'yes':
                    pytest.main(
                        [self.method, './main/test_runner.py', f'--alluredir={self.repoterdir}', '--clean-alluredir'])
                    os.system(f'allure generate {self.repoterdir} -o {self.htmldir} --clean')
                    # 自动打开测试报告
                    os.system(f'allure serve {self.repoterdir}')
                else:
                    pytest.main(
                        [self.method, './main/test_runner.py', f'--alluredir={self.repoterdir}', '--clean-alluredir'])
                    os.system(f'allure generate {self.repoterdir} -o {self.htmldir} --clean')
            else:
                if self.OpenRepoter.lower() == 'yes':
                    pytest.main([self.method, './main/test_runner.py', f'--alluredir={self.repoterdir}'])
                    os.system(f'allure generate {self.repoterdir} -o {self.htmldir} --clean')
                    # 将./repoter里的数据渲染成html报告，存放在指定目录下(路径可自定义)
                    # os.system('allure generate ./a_repoter -o ./a_Html --clean')
                    # 自动打开测试报告
                    os.system(f'allure serve {self.repoterdir}')
                else:
                    pytest.main([self.method, './main/test_runner.py', f'--alluredir={self.repoterdir}'])
                    os.system(f'allure generate {self.repoterdir} -o {self.htmldir} --clean')
        except:
            raise Exception('ERROR: 发生未知错误！！')

